package com.guilin.mapper;

import com.guilin.domain.ForumThread;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 论坛主题Mapper接口
 * 
 * @author xiaoqi
 * @date 2025-06-20
 */
public interface ForumThreadMapper 
{
    /**
     * 查询论坛主题
     * 
     * @param id 论坛主题主键
     * @return 论坛主题
     */
    public ForumThread selectForumThreadById(Long id);

    /**
     * 查询论坛主题列表
     * 
     * @param forumThread 论坛主题
     * @return 论坛主题集合
     */
    public List<ForumThread> selectForumThreadList(ForumThread forumThread);

    /**
     * 新增论坛主题
     * 
     * @param forumThread 论坛主题
     * @return 结果
     */
    public int insertForumThread(ForumThread forumThread);

    /**
     * 修改论坛主题
     * 
     * @param forumThread 论坛主题
     * @return 结果
     */
    public int updateForumThread(ForumThread forumThread);

    /**
     * 删除论坛主题
     * 
     * @param id 论坛主题主键
     * @return 结果
     */
    public int deleteForumThreadById(Long id);

    /**
     * 批量删除论坛主题
     * 
     * @param ids 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteForumThreadByIds(Long[] ids);

    /**
     * 增加浏览量
     * @param threadId
     * @return
     */
    public int incrementViewCount(Long threadId);

    /**
     * 更新回复数（添加/删除回复时调用）
     * @param threadId
     * @param delta
     * @return
     */
    int updateReplyCount(@Param("threadId") Long threadId, @Param("delta") int delta);

    /**
     * 更新点赞数（添加/删除点赞时调用）
     * @param threadId
     * @param delta
     * @return
     */
    int updateLikeCount(@Param("threadId") Long threadId, @Param("delta") int delta);
}
